কম্পিউটারকে দিয়ে কোনো কাজ করাতে হলে তাকে বিশেষভাবে নির্দেশ দিতে হয়। কম্পিউটারের প্রসেসর কেবল একটি নির্দিষ্ট সেটের কমান্ড এক্সিকিউট করতে পারে, যাকে বলে ইনস্ট্রাকশন সেট।
কৃত্রিম বুদ্ধিমত্তার যে অংশটুকু যন্ত্রকে মানুষের মত করে মানুষের ভাষা ব্যবহার করার ক্ষমতা দেয় সেটাকে 'ন্যাচারাল ল্যাঙ্গুয়েজ প্রসেসিং টুল' বলতে পারি।
প্রোগ্রামের সংগঠন বলতে কোন প্রোগ্রামের গঠনশৈলীকে বোঝায়। প্রত্যেক প্রোগ্রামের তিনটি অংশ যথা- ইনপুট, আউটপুট এবং প্রসেসিং থাকা অপরিহার্য। ইনপুট হলো ফলাফল লাভের জন্য প্রোগ্রামে যে ডাটা ও ইস্ট্রাকশন দেওয়া হয় তাই। আউটপুট হলো প্রক্রিয়াকরণের ফলে প্রাপ্ত ফলাফল। আর প্রসেসিং হলো প্রোগ্রামে দেয়া নির্দেশ অনুসারে প্রদেয় ডেটাকে প্রক্রিয়াকরণ করে তথ্যে পরিণত করা। এগুলোর মধ্যে দিয়ে একটি প্রোগ্রাম গঠিত হতে পারে। আর এটিকেই প্রোগ্রামের সংগঠন বলা হয়।
কম্পিউটারের সাহায্যে কোনাে সমস্যা সমাধানের জন্য প্রােগ্রাম তৈরির পাঁচটি ধাপ আছে। যথা-
ক. সমস্যা বিশ্লেষন।
খ. প্রােগ্রাম ডিজাইন
গ. প্রােগ্রাম ডেভেলপমেন্ট বা কোডিং।
ঘ প্রােগ্রাম বাস্তবায়ন (টেস্টিং ও প্রােগ্রামের ডিবাগিং)
ঙ. প্রােগ্রাম রক্ষণাবেক্ষণ।
ক. সমস্যা বিশ্লেষণ (Problem analysis) : সমস্যা নির্দিষ্ট করার পর সমস্যা সম্বন্ধে বিভিন্ন ডেটা সংগ্রহ করে তা বিশ্লেষণ করতে হয়। এর জন্য সমস্যাকে ছােট ছােট অংশে ভাগ করা হয়। প্রয়ােজনে চার্ট, তালিকা, গ্রাফ ইত্যাদির আশ্রয় নিতে হয়। একে বলে সিস্টেম বিশ্লেষণ। সমস্যার বিশ্লেষণে বর্তমান সিস্টেমের নিম্নলিখিত বিষয়গুলাে গুরুত্ব দিতে হয়-ইনপুট শনাক্তকরণ ও আউটপুট শনাক্তকরণ।
খ. প্রােগ্রাম ডিজাইন (Program design): প্রােগ্রাম ডিজাইন বলতে বােঝায় সমস্যা সমাধান করার জন্য বর্তমান সিস্টেমের প্রয়ােজনীয় সংশােধন করে নতুন সিস্টেমের মূল রূপরেখা নির্ণয়। অধিকাংশ ক্ষেত্রেই কোনাে জটিল সমস্যাকে সঠিকভাবে বিশ্লেষণ করতে পারলেই তার সহজ সমাধান বেরিয়ে আসে। সমাধানের জন্য সমস্যাকে বিভিন্ন অংশে ভাগ করে প্রত্যেক অংশ সম্বন্ধে পৃথকভাবে ও সব অংশ সম্বন্ধে সামগ্রিকভাবে চিন্তা করতে হয়। বিভিন্ন অংশের পারস্পরিক সম্বন্ধও বিচার করতে হয়। নতুন সিস্টেমের আর্থিক দিকও ভেবে দেখতে হয়। প্রােগ্রাম ডিজাইনে নিম্নলিখিত বিষয়গুলাে অন্তর্ভুক্ত। যথা-
অতঃপর সামগ্রিকভাবে চিন্তা করে প্রােগ্রামের বিভিন্ন অংশ কার্যকরী করার জন্য নিম্নলিখিত বিষয়গুলাে তৈরি করতে হয়।
গ. প্রােগ্রাম ডেভেলপমেন্ট বা কোডিং (Program coding) : অ্যালগােরিদম, ফ্লোচার্ট ও সুডােকোড থেকে সুবিধামত কোনাে প্রােগ্রামিং ভাষায় প্রােগ্রাম লিখতে হয়। এ হলাে প্রােগ্রামিং-এর সবচেয়ে সহজ অংশ, একে প্রােগ্রাম কোডিং (Coding) বলে।
ঘ. প্রােগ্রাম বাস্তবায়ন (Program development) : প্রােগ্রাম কোডিং করার পর প্রােগ্রাম বাস্তয়বান করা হয়। এ পর্বের প্রথমে প্রােগ্রামকে টেস্টিং করা হয় এবং টেস্টিং করার পর প্রয়ােজন অনুসারে সংশােধন করা হয়। প্রােগ্রামে ভুল থাকলে তা সংশােধন করা হয়। প্রোগ্রামের ভুলকে প্রােগ্রামের বাগ বলা হয়। আর এ বাগ সংশােধন করাকে ডিবাগিং বলা হয়।
ঙ. প্রোগ্রাম রক্ষণাবেক্ষণ (Program maintenance); বাইরের পরিস্থিতির পরিবর্তনের জন্য মাঝে মাঝে প্রােগ্রামে ছােটখাট পরিবর্তন করার প্রয়ােজন হয়। একে বলে রক্ষণাবেক্ষণ। সাধারণত কোনাে প্রতিষ্ঠানে কম্পিউটার স্থাপনের কয়েক বছর পর থেকে নতুন প্রােগ্রাম তৈরি করার চেয়ে পুরানাে প্রোগ্রামে রক্ষণাবেক্ষণে বেশি সময় ব্যয় হয়। জটিল প্রােগ্রামকে সাধারণত কতগুলাে ছােট অংশে ভাগ করা হয়, প্রত্যেক অংশকে বলে মডিউল (Module)। প্রত্যেক মাডিউল একটি নির্দিষ্ট কাজ করে। প্রােগ্রাম রক্ষণাবেক্ষণ সহজ করার জন্য প্রােগ্রামের সঠিক ডকুমেন্টেশন তৈরি করতে হবে।
অ্যালগােরিদম শব্দটি আরব দেশের গণিতবিদ আল খারিজমী’র নাম থেকে উৎপত্তি হয়েছে। অ্যালগােরিদম অর্থ ধাপে ধাপে সমস্যা সমাধান অর্থাৎ একটি সমস্যাকে কয়েকটি ধাপে ভেঙ্গে প্রত্যেকটি ধাপ পরপর সমাধান করে সমগ্র সমস্যা সমাধান করা।
অ্যালগােরিদম চারটি শর্ত সিদ্ধ করে। যথা-
১. অ্যালগােরিদম সহজবােধ্য হবে।
২. কোনাে ধাপই দ্ব্যর্থবােধক হবে না, প্রত্যেকটি ধাপ স্পষ্ট হবে যাতে কম্পিউটার সহজেই তা বুঝতে পারে।
৩. সসীমসংখ্যক ধাপে সমস্যার সমাধান হবে, কম্পিউটারের ক্ষেত্রে সীমাবদ্ধ সময়েই সমাধান পাওয়া যাবে।
৪. একে ব্যাপকভাবে প্রয়ােগ করা সম্ভব হবে।
কম্পিউটার নিজে চিন্তা করে কোনাে কিছু করতে পারে না বলেই এভাবে অ্যালগােরিদমের মাধ্যমে তাকে পরপর কি করতে হবে সেই নির্দেশ দিতে হয়। অ্যালগােরিদম হাই লেভেল ভাষায় অনুবাদ করে তবেই ইনপুটে দিতে হয়।
ফ্লোচার্ট হলাে এমন কতগুলাে ছবি যা থেকে বােঝা যায় সমস্যা সমাধান করতে হলে পরপর কিভাবে অগ্রসর হতে হবে। একে ফ্লোচার্ট বলার কারণ এ থেকে প্রােগ্রামের প্রবাহ (Flow) কিভাবে হচ্ছে তা বােঝা যায়। ফ্লোচার্ট প্রােগ্রাম বুঝতে প্রভূত সাহায্য করে ফলে বিভিন্ন প্রােগ্রামার সিস্টেম বিশ্লেষক, কম্পিউটার ব্যবহারকারী প্রমুখের মধ্যে যােগাযােগের সুবিধা হয়।
ফ্লোচার্ট এর প্রকারভেদ ও সুবিধাবলী
ফ্লোচাটকে প্রধানত দুই ভাগে ভাগ করা যায়। যথা-
১. সিস্টেম ফ্লোচার্ট এবং
২. প্রােগ্রাম ফ্লোচার্ট।
একটি উন্নতমানের ফ্লোচার্ট নিম্নলিখিত সুবিধা প্রদান করে :
১. সহজে প্রোগ্রামের উদ্দেশ্য বােঝা যায়।
২. প্রােগ্রামের ভুল নির্ণয়ে সহায়তা করে।
৩. প্রােগ্রাম পরিবর্তন ও পরিবর্ধনে সহায়তা করে।
৪. প্রােগ্রাম রচনায় সহায়তা করে।
৫. সহজে ও সংক্ষেপে জটিল প্রােগ্রাম লেখা সম্ভব হয়।
ফ্লোচার্ট আঁকার নিয়ম
ফ্লোচার্ট আঁকার নিয়মাবলী নিচে বর্ণনা করা হলাে :
১. প্রবাহ রেখার দ্বারা কোন চিহ্নের পর কোন চিহ্নের কাজ হবে তা বােঝানাে হয়। সাধারণত উপর থেকে নিচে বা বাম থেকে ডানদিকে প্রবাহ অগ্রসর হয় ।
২. একাধিক প্রবাহরেখা পরস্পরকে ছেদ করলেও তাদের মধ্যে কোনাে লজিক্যাল সম্পর্ক বা যােগাযােগ বােঝায় না।
৩. চিহ্নগুলাে ছােট বা বড় যে কোনাে সাইজের হতে পারে কিন্তু তাদের বিশিষ্ট আকৃতি যেন বজায় থাকে।
৪. প্রত্যেক ফ্লোচার্টের একটি নাম থাকবে, তাছাড়া রচয়িতার নাম ও তারিখ দিতে হবে।
৫. প্রয়ােজনে চিহ্নের সঙ্গে মন্তব্যও দেওয়া যায়।
৬. যতদূর সম্ভব রেখার ছেদ কম হওয়া ভালাে।
৭. বেশি সংযােগ রেখার পরিবর্তে সংযােগ প্রতীক ব্যবহার করা ভালাে।
৮. প্রতিটি ব্লকের লেখা সংক্ষেপে অথচ সহজবােধ্য হওয়া দরকার।।
৯. ফ্লোচার্ট বিশেষ কোনাে প্রােগ্রামের ভাষায় লেখা ঠিক নয়।
১০.ফ্লোচার্টের কোনাে অংশের বিস্তারিত বর্ণনা প্রয়ােজন হলে সে অংশের জন্য পৃথকভাবে বিস্তারিত ফ্লোচার্ট ব্যবহার করা ভালাে।
সুডো (Pseudo) গ্রিক শব্দ। প্রোগ্রামাররা অনেক সময় প্রোগ্রামের জন্য যে কোড লেখা হবে তার একটি খসড়া টেক্সট ভার্সন তৈরি করেন, একটি দেখতে অনেকটা প্রোগ্রামিং কোডের মতে হলেও আসল নয়। প্রোগ্রামের ধরন ও কার্যাবলি তুলে ধরার জন্য কিছু সংখ্যক নির্দেশ বা স্টেটমেন্টের সমাহারকেই সুডোকোড বলা হয়।
প্রােগ্রামের ভুলত্রুটি খুঁজে বের করে তা দূর করাকে বলে ডিবাগিং। এর আক্ষরিক অর্থ পোকা বাছা। ১৯৪৫ সালে মার্ক 1 কম্পিউটারটির ভেতরে একটি মথপোকা ঢোকায় কম্পিউটারটি হঠাৎ বন্ধ হয়ে যায়। এ থেকেই ডিবাগিং কথাটির উৎপত্তি । সব ভুলত্রুটি দূর না হওয়া পর্যন্ত কোনো প্রােগ্রামই ব্যবহার করা যায় না। ডিবাগিং এর জন্য প্রথমে প্রােগ্রামের আগাগােড়া ভালাে করে পরীক্ষা করে দেখা হয়। এ ছােটখাট ভুল এতেই দূর হয়ে যায়। এরপরও যেসব ভুল থেকে যায় সেগুলাে দূর করতে হলে প্রথমে সিনট্যাক্স ভুল দূর করে তারপর লজিক ভুল দূর করা হয়।
প্রোগ্রাম ডিজাইন মডেল : প্রােগ্রামের গঠনশৈলীকে বা প্রােগ্রামের গঠন রীতিনীতিকে প্রােগ্রামের মডেল বলা হয়। সুচারুভাবে প্রােগ্রাম লেখা এবং সহজে বােঝার জন্য প্রােগ্রাম রচনার ক্ষেত্রে কয়েকটি মডেল ব্যবহার করা হয়। এই মডেলগুলাে প্রােগ্রামের অনুধাবনযােগ্যতা বৃদ্ধি করে।
উল্লেখযােগ্য কয়েকটি প্রোগ্রাম ডিজাইন মডেল সম্পর্কে আলােচনা করা হলাে:
স্ট্রাকচার্ড প্রােগ্রামিং:- ডাচ কম্পিউটার বিজ্ঞানী এডগার ওয়েইবে ডেইস্ট্রা (Edsger Wybe Dijkstra) প্রথম বড় আকারের প্রােগ্রাম উন্নয়নের উদ্দেশ্যে স্ট্রাকচার্ড প্রােগ্রামিং-এর ধারণা দেন। স্ট্রাকচার্ড মডেলে পুরাে সমস্যাকে বিভিন্ন অংশ বা মডিউলে ভাগ করা হয়। প্রতিটি মডিউলকে ছােটো আকারের সমস্যা ভাবা যেতে পারে।
অবজেক্ট ওরিয়েন্টেড প্রােগ্রামিং (OOP):- যে প্রকার প্রোগ্রামিং এ অনেক অনেক অবজেক্ট কে নিয়ে বা অবজেক্ট কে ঘিরে প্রোগ্রামিং করা হয় তাকে OOP বা অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং বলে।
ভিজুয়্যাল প্রােগ্রামিং:- এটি এমন এক ধরনের ভাষা যা কোডিং আকারে আইকন, বোতাম এবং প্রতীকের মতো গ্রাফিকাল উপাদান ব্যবহার করে। এই প্রোগ্রামিং ভাষা কম্পিউটার দ্বারা উত্পন্ন কোডিং ধারণার চাক্ষুষ চিত্রের অনুমতি দেয়। এই ধরনের প্রোগ্রামিং ভাষা অ-প্রযুক্তিগত ব্যবহারকারীদের চার্ট এবং প্রক্রিয়াগুলিকে এমনভাবে ব্যাখ্যা করতে সাহায্য করে যা বেশিরভাগ নতুনরা বুঝতে পারে। ভিজ্যুয়াল প্রোগ্রামিং ভাষা ব্যবহারকারীদের সহজভাবে একটি টেনে আনতে এবং ড্রপ ইন্টারফেস ব্যবহার করতে দেয় এবং কম-কোড প্ল্যাটফর্মে সবচেয়ে দক্ষতার সাথে কাজ করে।
ইভেন্ট ড্রাইভেন প্রােগ্রামিং:- যে প্রোগ্রামিং এর বিভিন্ন নির্দেশ বা ইনস্ট্রাকশন চিত্রের মাধ্যমে দেওয়া হয় তাকে ইভেন্ট ড্রাইভেন প্রোগ্রামিং বলে। কী-বোর্ডের কোনো কী তে চাপ দেওয়া, কোনো বিশেষ কন্ট্রোলের ওপর মাউসের পয়েন্ট দিয়ে ক্লিক করা ইত্যাদি হলো ইভেন্ট। ব্যবহারকারী যখন কোনো কমান্ড বাটনের ওপর ক্লিক করেন তখন সেই নির্দেশটি কার্যকর হয়। এক্ষেত্রে Command হচ্ছে ‘নিয়ন্ত্রণ’ বা ‘কন্ট্রোল’ এবং ক্লিক করা হচ্ছে ‘ইভেন্ট’।
সি প্রোগ্রামিং হল একটি কম্পিউটার প্রোগ্রামিং ভাষা যা উন্নয়ন করেছেন Dennis Ritchie। এটি একটি লো-লেভেল প্রোগ্রামিং ভাষা যা একটি কম্পিউটার সিস্টেমের ভিতরে কাজ করতে পারে। এটি অ্যাসেম্বলি ভাষার চেয়েও উচ্চতর এবং সরল প্রোগ্রামিং ভাষা।
সি প্রোগ্রামিং ভাষাটি প্রথমবার বেল ল্যাবরেটরিজে ব্যবহার করা হয়েছিল কারণ তারা একটি সমস্যার সমাধান করার জন্য একটি ভাষা প্রয়োজন ছিল যা সিস্টেম লেভেলে কাজ করতে পারে। এরপর সি প্রোগ্রামিং একটি গুরুত্বপূর্ণ কম্পিউটার প্রোগ্রামিং ভাষা হিসাবে বিকাশ পেয়েছে এবং এখনও একটি জনপ্রিয় ভাষা হিসাবে ব্যবহৃত হচ্ছে।
সি প্রোগ্রামিং দ্বারা আমরা কম্পিউটার এপ্লিকেশন এবং সিস্টেম সফ্টওয়্যার উন্নয়ন করতে পারি।
যে সকল ঘটনা বা ফ্যাক্ট প্রক্রিয়াকরণের জন্য সংগ্রহ করা হয় তাকে বলা হয় ডাটা বা উপাত্ত। যেমন- ছাত্র ছাত্রীদের রেজাল্ট প্রস্তুত করার জন্য সংগৃহীত নাম, রোল নং, বিভিন্ন বিষয়ের প্রাপ্ত নম্বর হলো এক একটি ডাটা। আর বিভিন্ন ধরনের ডাটার বিন্যাসই হলো ডাটা টাইপ।
সি প্রোগ্রামিং ভাষা ডাটা টাইপের জন্য বেশ সমৃদ্ধ। সাধারণত ডাটা টাইপ মেশিনের উপর নির্ভরশীল। ANSI C তে চার ধরনের ডাটা ব্যবহৃত হয়। যথা–
(১) মৌলিক বা প্রাইমারী বা ফান্ডামেন্টাল ডাটা টাইপ (Primary or Fundamental data type)
(২) ব্যবহারকারী কর্তৃক সংজ্ঞায়িত বা ইউজার ডিফাইন ডাটা টাইপ (User define data type)
(৩) ডিরাইভড ডেটা টাইপ (Derived data type) এবং
(৪) ফাঁকা বা এ্যামটি ডাটা টাইপ (Empty data type)
সাধারণত ডাটা টাইপ বলতে Primary (or fundamental) data type কেই বোঝানো হয়। প্রাইমারী ডাটা টাইপকে আবার নিচের মত করে ভাগে ভাগ করা যায়:
চলক (Variable) হলো মেমোরি (RAM) লোকেশনের নাম বা ঠিকানা। Variable হলো Memory location এর নাম। যে নাম দ্বারা একজন User বা ব্যবহারকারী Memory location কে access করে থাকে। ইহা একজন User বা ব্যবহারকারী প্রদত্ত বিভিন্ন Value কে Hold করে। যেমনঃ a,b,c, Sum, Product, account, b_c, etc.
চলক নামকরণ
কম্পাইলারের কাজ হাই লেভেল ভাষার উৎস প্রােগ্রামকে বস্তু প্রােগ্রামে অনুবাদ করা। এটি গৌণ মেমােরিতে থাকে। কোনাে নির্দিষ্ট কম্পাইলার একটিমাত্র হাই লেভেল ভাষাকে মেশিন ভাষায় পরিণত করতে পারে। তাই ভিন্ন ভিন্ন হাই লেভেল ভাষার জন্য ভিন্ন ভিন্ন কম্পাইলার প্রয়ােজন।
কম্পাইলারের প্রধান কাজ হলাে:
১. উৎস প্রােগ্রামের উপাত্ত বস্তু প্রােগ্রামে অনুবাদ করা।
২. প্রােগ্রামের সাথে প্রয়ােজনীয় রুটিন যােগ করা।
৩. প্রােগ্রামে কোনাে ভুল থাকলে তা জানানাে।
৪. প্রধান মেমােরিতে প্রয়ােজনীয় স্মৃতি অবস্থানের ব্যবস্থা করা।
Compiler কার্যপ্রণালী
কম্পাইলারের প্রধান প্রধান সুবিধা
১. পুরাে প্রােগ্রামটিকে একবারেই বস্তু প্রােগ্রামে অনুবাদ করে ।
২. প্রােগ্রামে কোনাে ভুল থাকলে তা জানানাে।
৩.প্রধান মেমােরিতে প্রয়ােজনীয় স্মৃতি অবস্থানের ব্যবস্থা করা (Allocation)
৪. প্রয়ােজনে বস্তু বা উত্স প্রােগ্রামকে ছাপিয়ে বের করা।
কম্পাইলারের অসুবিধা হলাে কম্পাইলার যেহেতু পুরাে প্রোগ্রামটিকে একবারেই বস্তু প্রােগ্রামে অনুবাদ করে, তাই ধাপে ধাপে এর ভুল শনাক্ত করা যায় না ফলে সাথে সাথে সংশােধনও করা যায় না।
প্রথম কম্পিউটার প্রােগ্রামের রচয়িতা
ইংরেজ কবি লর্ড বায়রনের কন্যা অগাস্টা অ্যাডা বায়রনকে প্রথম কম্পিউটার প্রােগ্রামের রচয়িতা হিসেবে গণ্য করা হয়।
কম্পিউটারের ভাষা
কম্পিউটার একটি অত্যাধুনিক ইলেকট্রনিক যন্ত্র । ইলেকট্রনিক সংকেতের উপর ভিত্তি করে তৈরি করা হয়েছে কম্পিউটারের ভাষা। গণিতের বাইনারি পদ্ধতিতে যে কোনাে সংখ্যাকে ১ এবং ০ দ্বারা প্রকাশ করা যায়। এরূপ বাইনারি যে কোনাে সংখ্যাকে ইলেক্ট্রনিক অন/অফ করে প্রকাশিত ভাষাই হলাে ইলেকট্রনিক ল্যাঙ্গুয়েজ বা কম্পিউটারের ভাষা। বাইনারি হলাে এমন সংখ্যা পদ্ধতি, যাতে যে কোনাে সংখ্যাকে ০ এবং ১ দ্বারা প্রকাশ করা যায়। যেমন, ২৯ কে ১১১০১ দ্বারা, ২০৩ কে ১১০০১০১১ দ্বারা প্রকাশ করা যায়। এভাবে যে কোনাে সংখ্যাকে ১ এবং ০ দ্বারা প্রকাশ করা যায়। কম্পিউটার কেবল ইলেকট্রনিক সংকেত অর্থাৎ সার্কিটে বিদ্যুৎ আছে কি নেই তা বােঝে। অর্থাৎ কম্পিউটার শুধু দুটি অবস্থা বােঝে। বাইনারি 1 দ্বারা বিদ্যুৎ আছে (On) এবং 0 দ্বারা। বিদ্যুৎ নেই (Off) এর উপর ভিত্তি করেই কম্পিউটারের ভাষা তৈরি করা হয়েছে। এভাবে যে কোনাে শব্দ বা চিহ্ন কম্পিউটারকে বােঝার উপযােগী করে অর্থাৎ ০ এবং ১ এ রূপান্তরিত করে। দেয়ার ব্যবস্থা করা হয়েছে কম্পিউটার ল্যাঙ্গুয়েজ এ।
প্রােগ্রামিং ল্যাঙ্গুয়েজ
মেশিনের ভাষায় বিদ্যুতের অনুপস্থিতিকে ০ এবং উপস্থিতিকে ১ ধরা হয়। কিন্তু ০ এবং ১ দিয়ে লেখা মানুষের পক্ষে বুঝা কঠিন। প্রাথমিক পর্যায়ে কম্পিউটারের জন্য এ কঠিন কাজটি করতে হয়েছিল। কিন্তু পরবর্তী সময়ে মানুষ কম্পিউটারকে মানুষের ভাষার কাছাকাছি কিছু শব্দ চেনাতে সক্ষম হয়েছিল। এ রকম কৃত্রিমভাবে তৈরী করা ভাষা দিয়ে প্রণীত নির্দেশাবলি কম্পিউটার বুঝতে পারে। এ ভাষাকে বলা হয় প্রােগ্রামিং ল্যাঙ্গুয়েজ। কম্পিউটার দিয়ে সহজে কোনাে সমস্যা সমাধানের জন্য কম্পিউটারকে তার নিজস্ব বােধগম্য ভাষায় নির্দেশ প্রদান করতে হয়। কম্পিউটারের নিজস্ব ও বােধগম্য ভাষায় নির্দেশ প্রদানের জন্য নির্দিষ্ট নিয়ম অনুযায়ী শব্দ, বর্ণ, সংকেত ইত্যাদির সুনির্দিষ্ট বিন্যাস হচ্ছে প্রােগ্রাম। প্রোগ্রামে ব্যবহৃত বর্ণ, শব্দ, সংকেত ইত্যাদি নির্দিষ্ট গঠনে তৈরি হয় প্রােগ্রামের ভাষা।
বিভিন্ন স্তরের প্রােগ্রামের ভাষা
প্রােগ্রামের ভাষাকে বৈশিষ্ট্য অনুযায়ী পাঁচটি স্তরে (Level) বা প্রজন্মে (Generation) ভাগ করা যায়। যথা-
ক. প্রথম প্রজন্ম ভাষা (১৯৪৫) : মেশিন ভাষা (Machine Language);
খ. দ্বিতীয় প্রজন্ম ভাষা (১৯৫০) : অ্যাসেম্বলি ভাষা (Assembly Language);
গ. তৃতীয় প্রজন্ম ভাষা (১৯৬০) : উচ্চতর বা হাই লেভেল (High Level) ভাষা।
ঘ. চতুর্থ প্রজন্ম ভাষা (১৯৭০) : অতি উচ্চতর বা ভোর হাই লেভেল (Very High Level) ভাষা ও
ঙ. পঞ্চম প্রজন্ম ভাষা (১৯৮০); স্বাভাবিক বা ন্যাচারাল (Natural) ভাষা।
ইন্টারপ্রেটারের কাজ হাই লেভেল ভাষার উৎস প্রােগ্রামকে মেশিন ভাষায় পরিণত করা। এটি একটি নির্দেশ মেশিন ভাষায় অনুবাদ করে তা কার্যে পরিণত করতে পারে এবং এরপর পরবর্তী নির্দেশে হাত দেয়।
ইন্টারপ্রেটারের সুবিধা : এর ব্যবহারে প্রােগ্রামের ভুল সংশােধন করা বা প্রােগ্রামের পরিবর্তন করা সহজ হয়। ইন্টারপ্রেটার প্রােগ্রাম আকারে ছােট বলে এর ব্যবহারে মেমােরি অবস্থানের জায়গা বাঁচে। অনুদিত বস্তু প্রােগ্রামকে মেমােরিতে সঞ্চয় করে রাখতে হয় না।
ইন্টারপ্রেটারের অসুবিধা ; ইন্টারপ্রেটার ব্যবহারে প্রােগ্রাম কার্যকরী করতে প্রচুর সময় লাগে। কারণ ইন্টারপ্রেটারের ক্ষেত্রে প্রােগ্রাম কার্যকরী করার সময়ের মধ্যে অনুবাদের সময়ও ধরতে হয়। ইন্টারপ্রেটর ব্যবহারে যতবার প্রােগ্রাম কার্যকরী করতে হয় ততবারই প্রােগ্রামের নির্দেশগুলাে একটির পর একটি অনুবাদ করতে হয়।
কম্পাইলার ও ইন্টারপ্রেটারের মধ্যে পার্থক্য
কম্পাইলার ও ইন্টারপ্রেটারের মধ্যে পার্থক্য নিচে তুলে ধরা হলাে :
কম্পাইলার |
ইন্টারপ্রেটার |
কম্পাইলার সম্পূর্ণ প্রােগ্রামটি এক সাথে অনুবাদ করে। |
ইন্টারপ্রেটার এক লাইন করে পড়ে এবং অনুবাদ করে। |
কম্পাইলার প্রােগ্রামের সবগুলাে ভুল এক সাথে প্রদর্শন করে। |
ইন্টারপ্রেটার প্রতিটি লাইনের ভুল প্রদর্শন করে অনুবাদ কার্য বন্ধ করে দেয়। |
ডিবাগিং ও টেস্টিং-এর ক্ষেত্রে ধীর গতিসম্পন্ন। |
ডিবাগিং ও টেস্টিং-এর ক্ষেত্রে দ্রুত গতিসম্পন্ন |
কম্পাইলারের মাধ্যমে প্রােগ্রাম রূপান্তরের পর পুনঃরুপান্তরের প্রয়ােজন হয় না অর্থাৎ একবার কম্পাইল করা হলে পরবর্তীতে আর কম্পাইল করা প্রয়ােজন হয় না |
ইন্টারপ্রেটারের মাধ্যমে রূপান্তরিত প্রোগ্রাম পুন:রূপান্তরের প্রয়ােজন। |
কম্পাইলারের মাধ্যমে রূপান্তরিত প্রোগ্রাম পূর্ণাঙ্গ যান্ত্রিক প্রােগ্রামে রূপান্তরিত হয়। এই প্রােগ্রামকে অবজেক্ট প্রােগ্রাম বলে। |
ইন্টারপ্রেটারের মাধ্যমে রূপান্তরিত ভােগ পূর্ণাঙ্গ যান্ত্রিক প্রােগ্রামের রূপান্তরিত হয় না। |
বড় ধরনের কম্পিউটারে একে বেশি ব্যবহার করা হয়ে থাকে। |
মাইক্রো কম্পিউটারে এবং পকেট কম্পিউটার অধিক ব্যবহার হয়ে থাকে। |
এই প্রােগ্রামটি সাধারণত বড় হয়ে থাকে এবং প্রধান মেমােরিতে বেশি জায়গার প্রয়ােজন হয়। |
এই প্রােগ্রামটি সাধারণত ছােট হয়ে থাকে এবং প্রধান মেমােরিতে কম জায়গার প্রয়ােজন হয়। |
প্রােগ্রাম নির্বাহের জন্য কম সময় প্রয়ােজন। |
প্রােগ্রাম নির্বাহের জন্য বেশি সময় প্রয়ােজন। |
Java হল একটি প্রোগ্রামিং ল্যাঙ্গুয়েজ এবং কম্পিউটিং প্ল্যাটফর্ম যা Sun Microsystems প্রথম 1995 সালে প্রকাশ করে।
এটি একটি ক্লাস-ভিত্তিক, অবজেক্ট-ওরিয়েন্টেড ল্যাঙ্গুয়েজ যা পোর্টেবল করার জন্য ডিজাইন করা হয়েছে, যার অর্থ Java কোড বিভিন্ন হার্ডওয়্যার এবং অপারেটিং সিস্টেমে চলতে পারে। Java ব্যাপকভাবে এন্টারপ্রাইজ-স্তরের অ্যাপ্লিকেশন, মোবাইল অ্যাপস, ভিডিও গেমস এবং অন্যান্য ধরণের সফ্টওয়্যার তৈরির জন্য ব্যবহৃত হয়। এটি "একবার লিখুন, যেকোনো জায়গায় চালান" দর্শনের জন্য পরিচিত, কারণ Java ভার্চুয়াল মেশিন ( JVM) সমর্থন করে এমন যেকোনো প্ল্যাটফর্মে চালানোর জন্য Java কোড কম্পাইল করা যেতে পারে। উপরন্তু, Java একটি বৃহৎ এবং সক্রিয় ইকোসিস্টেম আছে যেখানে ডেভেলপারদের জন্য প্রচুর লাইব্রেরি এবং ফ্রেমওয়ার্ক রয়েছে।
Read more